import request from '@/utils/request'

/**
 * 获取商品列表
 * @param params 传入的参数
 */
export function productListApi(params) {
  return request({
    url: '/api/Products',
    method: 'GET',
    headers: {
      isToken: true,
      Accept: 'application/json'
    },
    params: Object.assign(params, { isGet: true })
  });
};

/**
 * 新增商品
 * @param data 参数
 */
export function productCreateApi(data) {
  return request({
    url: '/api/Products',
    method: 'POST',
    headers: {
      isToken: true
    },
    data
  })
}

/**
 * 编辑商品
 * @param data 参数
 */
export function productUpdateApi(data) {
  const { id } = data
  return request({
    url: `/api/Products/${id}`,
    method: 'PUT',
    headers: {
      isToken: true
    },
    data
  })
}

/**
 * 获取分类接口
 * @param params 传入的参数
 */
export function categoryApi(params) {
  return request({
    url: '/api/ProductCates',
    method: 'GET',
    headers: {
      isToken: true,
      Accept: 'application/json'
    },
    params
  })
}

/**
 * 查询规格模板接口
 */
export function templateListApi(params) {
  return request({
    url: '/api/ProductRules',
    method: 'GET',
    headers: {
      Accept: 'application/json'
    },
    params
  });
};

/**
 * 添加产品规格
 * @param data
 */
export function attrCreatApi(data) {
  return request({
    url: '/api/ProductRules',
    method: 'POST',
    headers: {
      isToken: true
    },
    data
  })
}

/**
 * 编辑产品规格
 * @param data 数据
 */
export function attrEditApi(data) {
  const { id, ruleName, ruleValue } = data
  return request({
    url: `/api/ProductRules/${id}`,
    method: 'PUT',
    headers: {
      isToken: true
    },
    data: {
      ruleName,
      ruleValue
    }
  })
}

/**
 * 删除产品规格
 * @param data 数据
 */
export function attrDeleteApi(id) {
  return request({
    url: `/api/ProductRules/${id}`,
    method: 'DELETE'
  });
};

/**
 * 商品上架/下架
 * @param id
 */
export function patchStateApi(data) {
  const { id, op, path, value } = data

  return request({
    url: `${id.indexOf(',') !== -1 ? '/api/Products/Multiple/?productIds=' + id : '/api/Products/' + id}`,
    method: 'PATCH',
    headers: {
      isToken: true
    },
    data: [
      { op, path, value }
    ]
  })
}

/**
 * 删除/移入到回收站
 * @param data 数据
 */
export function productDeleteApi(id) {
  return request({
    url: `/api/Products/${id}`,
    method: 'DELETE',
    headers: {
      isToken: true
    }
  })
}

/**
 * 获取统计数据
 */
export function getHeadCountApi() {
  return request({
    url: `/api/Products/Chart`,
    method: 'GET'
  });
};

/**
 * 获取所有评论
 * @param data 数据
 * @returns {AxiosPromise}
 */
export function getReplyListAllApi(params) {
  console.log('获取所有评论', params);
  return request({
    url: `/api/productReplys`,
    method: 'GET',
    headers: {
      isToken: true
    },
    params: Object.assign(params, { isGet: true })
  });
};

/**
 * 删除评论
 * @param id
 * @returns {AxiosPromise}
 */
export function delReplyDeleteApi(id) {
  return request({
    url: `api/productReplys/${id}`,
    method: 'DELETE'
  })
};

/**
 * 评论回复
 * @param id
 * @param data
 * @returns {AxiosPromise}
 */
export function putReplyContentApi(id, data) {
  return request({
    url: `api/productReplys/set/${id}`,
    method: 'PUT',
    data: data
  })
};

/**
 * 添加虚拟评论
 * @param data
 * @returns {AxiosPromise}
 */
export function postReplyCreatApi(data) {
  return request({
    url: `api/productReplys/virtual`,
    method: 'POST',
    data: data
  });
};

/**
 * 批量删除评论
 * @param ids
 * @returns {AxiosPromise}
 */
export function batchDELReplyApi(ids) {
  return request({
    url: `api/productReplys/(${ids})`,
    method: 'DELETE'
  });
};
